#
#■この makefile の利用手引き
# 1. このファイルをサンプルのディレクトリにコピーしてください。
# 2. ディレクトリの設定を調整してください。
#    マクロ GCC, SEGALIB, SEGASMP を定義してください。
# 3. コンフィギュレーションファイル sample.cfg を作成してください。
#    マクロ TARGET と OBJS を定義してください。
# 4. make を実行してサンプルプログラムを作成してください。
#

#
#■このファイルで使われているマクロの説明
#  CC           Ｃコンパイラを指定します。（実行可能な形で記述してください）
#  CFLAGS       Ｃコンパイラのオプションを指定します。
#  AS           アセンブラを指定します。（実行可能な形で記述してください）
#  ASFLAGS      アセンブラのオプションを指定します。
#  LDFLAGS      リンカのオプションを指定します。
#  GCC          ＧＮＵのあるディレクトリを指定します。
#  SEGASMP      ＳＢＬのサンプルのあるディレクトリを指定します。
#  SEGALIB      ＳＢＬのライブラリのあるディレクトリを指定します。
#  LOCATE_FILE  メモリのロケーションを記述したファイルです。
#  ENTRY_POINT  サンプルプログラムの実行開始アドレスを指定します。
#  LIBS         リンクするライブラリを指定します。
#  
#  （コンフィギュレーションファイル sample.cfg の中で定義します）
#  TARGET       サンプルプログラムの名前を指定します。
#               （ファイルのプライマリネームになります）
#  OBJS         リンクするオブジェクトファイルを指定します。
#

CC = gcc
AS = gasm
RM = - rm -rf

CFLAGS  = -g -O0 -Wall -DMODEL_S -I$(GCC)/include -I$(SEGALIB)/include
ASFLAGS =
LDFLAGS = -T $(LOCATE_FILE) -nostartfiles

GCC     = ../../gccsh
SEGASMP = ..
SEGALIB = ../../segalib

LOCATE_FILE = smpsys.lnk
CONFIG_FILE = smpsys.cfg

LIBS=	$(SEGALIB)/lib/sega_sat.a

include	$(CONFIG_FILE)

.SUFFIXES:
.SUFFIXES: .bin .sre .o .src .c

all:	ip_gnu.bin

ip_gnu.bin:	$(TARGET).cof
	objcopy -I coff-sh -O binary $? $@
#ip_gnu.bin:	$(TARGET).sre
#	sretobin $? $@
#	del $?

#$(TARGET).sre:	$(OBJS)
#	$(CC) $(LDFLAGS) $(_LDFLAGS) -o $(TARGET).sre -Xlinker -Map -Xlinker ip_gnu.map $(OBJS) $(LIBS)
$(TARGET).cof:	$(OBJS)
	$(CC) $(LDFLAGS) $(_LDFLAGS) -o $(TARGET).cof -Xlinker -Map -Xlinker ip_gnu.map $(OBJS) $(LIBS)

%.o: %.c
	$(CC) -c $(CFLAGS) $(_CFLAGS) -o $@ $<

%.o: %.src
	$(AS) $< $(ASFLAGS) $(_ASFLAGS) -o $@
